/*
*该文件是创建一个为count组件服务的reducer,reducer就是一个函数
*countReducer会接到2个参数，一个是原先的状态，另一个是action状态
*reducer是纯函数，不负责判断
*/

// 暴露reducer方法
const initState = 0; //初始化状态
export default function countReducer(preState = initState, action) {
    const { type, data } = action
    // 从action对象中获取type和date
    // 根据type判断操作(此处判断是加减乘除中哪种运算)
    switch (type) {
        case "increment": // 如果是加
            return preState + data
        case "discrement": // 如果是减
            return preState - data
        default:
            return preState
    }
}

// 初始化方法一
// export default function countReducer(preState, action) {
//     if(preState === undefined) preState = 0;
//     const { type, data } = action
//     // 从action对象中获取type和date
//     // 根据type判断操作(此处判断是加减乘除中哪种运算)
//     switch (type) {
//         case "increment": // 如果是加
//             return preState + data
//         case "discrement": // 如果是减
//             return preState - data
//         default:
//             return 0
//     }
// }


// 初始化方法二
// const initState = 0;
// export default function countReducer(preState = initState, action) {
//     const { type, data } = action
//     // 从action对象中获取type和date
//     // 根据type判断操作(此处判断是加减乘除中哪种运算)
//     switch (type) {
//         case "increment": // 如果是加
//             return preState + data
//         case "discrement": // 如果是减
//             return preState - data
//         default:
//             return preState
//     }
// }